[新機能]Googleスプレッドシートからdbt Semantic Layerへ接続時にSaved queriesで定義した内容を実行できるようになりました

[新機能]Googleスプレッドシートからdbt Semantic Layerへ接続時にSaved queriesで定義した内容を実行できるようになりました

Clock Icon2024.07.08

さがらです。

dbt Cloudの2024年4月のリリースノートに以下の言及があり、Googleスプレッドシートからdbt Semantic Layerへ接続時にSaved queriesとして定義した内容を参照して実行できるようになりました。

Enhancement: In the Google Sheets application, we added support to allow jumping off from or exploring MetricFlow-defined saved queries directly.

https://docs.getdbt.com/docs/dbt-versions/dbt-cloud-release-notes

こちらのアップデートの内容を試してみたので、本記事でまとめてみます。

Saved queriesとは

まず、Saved queriesとはどういった機能なのか説明します。

Saved queriesは、使用するMetrics・Dimensionとフィルタ関係をYAMLで定義しておくことで、定義した条件に沿って実行されるクエリ結果を指定したスキーマにテーブルとしてエクスポートできる機能です。

下図がSaved queriesの定義例となります。

saved_queries:
  - name: test_saved_query
    description: "{{ doc('saved_query_description') }}"
    label: Test saved query
    query_params:
      metrics:
        - simple_metric
      group_by:
        - "Dimension('user__ds')"
      where:
        - "{{ Dimension('user__ds', 'DAY') }} <= now()"
        - "{{ Dimension('user__ds', 'DAY') }} >= '2023-01-01'"
    exports:
      - name: my_export
        config:
          alias: my_export_alias
          export_as: table
          schema: my_export_schema_name

Saved queriesの公式ドキュメントは下記です。

https://docs.getdbt.com/docs/build/saved-queries

事前準備:Googleスプレッドシートからdbt Semantic Layerへ接続

Googleスプレッドシートからdbt Semantic Layerへ接続する方法については、別途下記の記事で詳細をまとめておりますので、こちらも参考にしてみてください。

https://dev.classmethod.jp/articles/dbt-semantic-layer-refer-from-google-sheets/

また、使用しているリポジトリは下記のjaffle-shopリポジトリをクローンしたものとなっています。

https://github.com/dbt-labs/jaffle-shop/tree/main

試してみた

前提条件

下図のような形で3つのsaved_queriesを定義しているとします。

2024-07-08_15h24_34
2024-07-08_15h25_12
2024-07-08_15h25_30

動作確認

スプレッドシートからdbt Semantic Layerの拡張機能を開き、右上のメニューバーからSaved Queriesを押します。

2024-07-08_15h37_18

すると、定義しているsaved_queries一覧が表示されます。横の下向き三角のアイコンを押すと、どのMetricsを実行するのかなど設定条件が表示されます。

2024-07-08_15h44_16

2024-07-08_15h44_33

実際に定義したSaved queriesを実行するには、対象のSaved queriesの横の「▶」ボタンを押せばOKです。

2024-07-08_15h48_53

あとはオプションですが、右横の点々をクリックしてBuild Selectionを押すと、定義済みのSaved queriesに対して設定を変更してデータを出力させることが可能です。

2024-07-08_15h46_46

2024-07-08_15h47_26

最後に

Googleスプレッドシートからdbt Semantic Layerへ接続時にSaved queriesとして定義した内容を参照して実行できるようになりましたので、実際に試してみました。

Saved queriesはテーブルとしても出力できますが、実際にエンドユーザーが参照する際はスプレッドシートなどのほうが都合が良いこともあると思います。そんなときにこの機能が使えそうですね!

Share this article

facebook logohatena logotwitter logo

© Classmethod, Inc. All rights reserved.